package chapter

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"time"
)

// 中间件 1
func Index(ctx *gin.Context) {
	start_time := time.Now()

	fmt.Println("这里是自定义中间件1，开始执行")
	//ctx.HTML(http.StatusOK, "chapter/index.html", nil)
	// 中间件执行顺序
	ctx.Next()
	time_count := time.Since(start_time)
	fmt.Println(time_count)
	fmt.Println("这里是自定义中间件1，执行结束")
}

// 中间件2
func MiddleMethod2() gin.HandlerFunc {

	return func(ctx *gin.Context) {
		fmt.Println("这里是自定义中间件2，开始执行")
		//ctx.Next()
		//b := false
		//if !b {
		//	// 不满足条件
		//	ctx.Abort() // 结束中间件 链条
		//	// return  不能终止链条 这里不建议使用  return
		//}
		time.Sleep(3) //time.Second *
		ctx.Next()
		fmt.Println("这里是自定义中间件2，执行结束")

	}
}

func MiddleMethod3() gin.HandlerFunc {
	return func(ctx *gin.Context) {
		fmt.Println("这里是自定义中间件3，开始执行")
		time.Sleep(3)
		ctx.Next()
		fmt.Println("这里是自定义中间件3，执行结束")
	}
}

// 顺序  1开始 - 2开始 - 2结束 - 1结束
